package cn.huiyunche.base.service.mappers.ext;

import cn.huiyunche.base.service.model.SOrderExample;
import cn.huiyunche.base.service.vo.COrderLogisticsVo;
import cn.huiyunche.base.service.vo.COrderTrackVo;
import cn.huiyunche.base.service.vo.OrderTrailVo;
import cn.huiyunche.base.service.vo.OrderVo;

import java.util.List;
import java.util.Map;

public interface OrderViewMapper {

    /**
     * @param search
     * @Title: selectByPublished
     * @Description: 查询已发布列表
     * @return: List<OrderVo>
     */
    List<OrderVo> selectByPublished(SOrderExample search);

    /**
     * @param search
     * @Title: selectByPendingPay
     * @Description: 查询待付款列表
     * @return: List<OrderVo>
     */
    List<OrderVo> selectByPendingPay(SOrderExample search);

    /**
     * @param search
     * @Title: selectByDone
     * @Description: 查询已完成列表
     * @return: List<OrderVo>
     */
    List<OrderVo> selectByDone(SOrderExample search);

    /**
     * 查询订单详情
     *
     * @param orderid
     * @return OrderVo
     */
    OrderVo selectById(Long orderid);

    /**
     * @param paramsMap
     * @Title: selectListByCondition
     * @Description: 查询客户订单的服务订单信息
     * @return: COrderLogisticsVo
     */
    COrderLogisticsVo selectListByCondition(Map<String, Object> paramsMap);

    /**
     * @param search
     * @Title: selectByConditionsForPC
     * @Description: 根据条件查询客户订单（PC端）
     * @return: List<COrderTrackVo>
     */
    List<COrderTrackVo> selectByConditionsForPC(SOrderExample search);

    /**
     * 查询总条数
     *
     * @param search
     * @return
     */
    int selectByConditionsForPCCount(SOrderExample search);

    /**
     * @param search
     * @Title: selectByConditionsForMobile
     * @Description: 根据条件查询客户订单（Mobile端）
     * @return:List<OrderVo>
     */
    List<OrderVo> selectByConditionsForMobile(SOrderExample search);

    /**
     * 查询总条数
     *
     * @param search
     * @return
     */
    int selectByConditionsForMobileCount(SOrderExample search);

    OrderTrailVo selectOrderListByCondition(Map<String, Object> paramsMap);

}
